package com.jm.dao;  
  
import java.sql.Connection;  
import java.sql.DriverManager;  
import java.sql.PreparedStatement;  
import java.sql.ResultSet;  
import java.sql.SQLException;  
  
/** 
 * 数据连接基本类 
 * 
 */  
public class BaseDao{  
//建立连接  
protected Connection conn=null;  
//操作SQL的对象  
protected PreparedStatement ps=null;  
//结果集  
ResultSet rs=null;  
/* 
 * 获取连接 
 */  
public Connection getConnection(){  
    String url="jdbc:mysql://localhost:3306/wxjm?characterEncoding=utf8&useSSL=false";  
    String username="root";  
    String password="nihao2017!yybzj";  
      
    try {  
        //加载驱动  
        Class.forName("oracle.jdbc.driver.OracleDriver");  
        //建立连接  
        conn=DriverManager.getConnection(url,username,password);  
          
    } catch (ClassNotFoundException e) {  
          
        e.printStackTrace();  
    } catch (SQLException e) {  
        e.printStackTrace();  
    }  
    //返回连接  
    return conn;  
}  
/* 
 * 查询 
 * sql--SQL语句 
 * params参数列表 
 */  
public ResultSet executeQuery(String sql,Object [] params){  
    //获取连接  
    this.conn=getConnection();  
      
    try {  
        //获取PreparedStatement对象，通过连接对象获取  
        ps=conn.prepareStatement(sql);  
        //判断参数列表是否为空  
        if(params!=null){  
            for (int i = 0; i < params.length; i++) {  
                //设置占位符  
                ps.setObject(i+1, params[i]);  
            }  
        }  
        //执行查询并返回结果集  
        rs=ps.executeQuery();  
    } catch (SQLException e) {  
        e.printStackTrace();  
    }  
    //返回结果集  
    return rs;  
}  
  
/* 
 * 增加删除改 
 */  
public int executeUpdate(String sql,Object[] params){  
    //影响行数  
    int updateNum=0;  
    //获取连接  
    this.conn=getConnection();  
      
    try {  
        //获取PreparedStatement对象，通过conn  
        ps=conn.prepareStatement(sql);  
        //判断参数列表是否为空  
        if(params!=null){  
            //设置占位符  
            for (int i = 0; i < params.length; i++) {  
                ps.setObject(i+1, params[i]);  
            }  
              
        }  
        //执行，增，删除，修改  
        updateNum=ps.executeUpdate();  
    } catch (SQLException e) {  
        e.printStackTrace();  
    }finally{  
        //关闭连接  
        closeConnection();  
    }  
    //返回影响行数              
    return updateNum;  
}  
  
  
/* 
 * 关闭连接 
 */  
public void closeConnection(){  
    try {  
        if(rs!=null)  
        rs.close();  
    } catch (SQLException e) {  
        e.printStackTrace();  
    }  
    try {  
        if(ps!=null)  
        ps.close();  
    } catch (SQLException e) {  
        e.printStackTrace();  
    }  
    try {  
        if(conn!=null)  
        conn.close();  
    } catch (SQLException e) {  
        e.printStackTrace();  
    }  
}  
}
